/**
 *Copyright (c) 2024 watereyes
 * safetymanagement is licensed under Mulan PubL v2.
 * You can use this software according to the terms and conditions of the Mulan
 * PubL v2.
 * You may obtain a copy of Mulan PubL v2 at:
 *          http://license.coscl.org.cn/MulanPubL-2.0
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
 * See the Mulan PubL v2 for more details.
 */
package com.koron.emergency.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.koron.common.domain.BaseEntity;
import com.koron.hiddendanger.domain.HiddenDangerDiscovery;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

@ApiModel(value = "应急设备", description = "应急设备实体类")
public class EmergencyDevice extends BaseEntity {

    @ApiModelProperty(name = "corpCode", value = "水司code", required = true)
    private String corpCode;

    @ApiModelProperty(name = "corpName", value = "水司名称")
    private String corpName;

    @ApiModelProperty(name = "code", value = "设备编号", required = true)
    private String code;

    @ApiModelProperty(name = "deviceType", value = "设备分类", required = true)
    private String deviceType;

    @ApiModelProperty(name = "deviceTypeName", value = "设备分类名称")
    private String deviceTypeName;

    @ApiModelProperty(name = "name", value = "设备名称", required = true)
    private String name;

    @ApiModelProperty(name = "deviceParameter", value = "规格参数")
    private String deviceParameter;

    @ApiModelProperty(name = "reserveQuota", value = "储备定额")
    private Integer reserveQuota;

    @ApiModelProperty(name = "existingQuantity", value = "现有数量")
    private Integer existingQuantity;

    /*2020/8/6 新增字段，单价、总价*/
    @ApiModelProperty(name = "unitPrice", value = "单价")
    private Double unitPrice;

    @ApiModelProperty(name = "totalPrice", value = "总价")
    private Double totalPrice;

    @ApiModelProperty(name = "place", value = "存放地点")
    private String place;

    @ApiModelProperty(name = "quantity_Unit", value = "数量单位")
    private String quantityUnit;

    @ApiModelProperty(name = "storageTime", value = "入库时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date storageTime;

    @ApiModelProperty(name = "storageYear", value = "储备年限，0-10单位年")
    private Integer storageYear;

    @ApiModelProperty(name = "status", value = "设备状态，0正常，1异常", required = true)
    private Integer status;

    @ApiModelProperty(name = "manager", value = " 责任人code", required = true)
    private String manager;

    @ApiModelProperty(name = "managerName", value = "责任人名称_单位名称")
    private String managerName;

    @ApiModelProperty(name = "checkManager", value = "检查责任人code", required = true)
    private String checkManager;

    @ApiModelProperty(name = "checkManagerName", value = "检查责任人名称", required = true)
    private String checkManagerName;

    @ApiModelProperty(name = "attachment", value = "附件地址")
    private String attachment;

    @ApiModelProperty(name = "previewAttachment", value = "pdf附件地址")
    private String previewAttachment;

    @ApiModelProperty(value = "设备的检查结果是否正常", name = "normal")
    private Boolean normal;

    @ApiModelProperty(value = "隐患id, 可以有多个", name = "hiddenDangerIds")
    private String hiddenDangerIds;

    @ApiModelProperty(value = "隐患列表, 可以有多个", name = "hiddenDangers")
    private List<HiddenDangerDiscovery> hiddenDangers;

    @ApiModelProperty(name = "expirationTime", value = "过期时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date expirationTime;

    @ApiModelProperty(value = "最新检查时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date lastCheckDate;

    public Date getLastCheckDate() {
        return lastCheckDate;
    }

    public void setLastCheckDate(Date lastCheckDate) {
        this.lastCheckDate = lastCheckDate;
    }

    public Date getExpirationTime() {
        return expirationTime;
    }

    public void setExpirationTime(Date expirationTime) {
        this.expirationTime = expirationTime;
    }

    public String getCorpCode() {
        return corpCode;
    }

    public void setCorpCode(String corpCode) {
        this.corpCode = corpCode;
    }

    public String getCorpName() {
        return corpName;
    }

    public void setCorpName(String corpName) {
        this.corpName = corpName;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getDeviceType() {
        return deviceType;
    }

    public void setDeviceType(String deviceType) {
        this.deviceType = deviceType;
    }

    public String getDeviceTypeName() {
        return deviceTypeName;
    }

    public void setDeviceTypeName(String deviceTypeName) {
        this.deviceTypeName = deviceTypeName;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDeviceParameter() {
        return deviceParameter;
    }

    public void setDeviceParameter(String deviceParameter) {
        this.deviceParameter = deviceParameter;
    }

    public Integer getReserveQuota() {
        return reserveQuota;
    }

    public void setReserveQuota(Integer reserveQuota) {
        this.reserveQuota = reserveQuota;
    }

    public Integer getExistingQuantity() {
        return existingQuantity;
    }

    public void setExistingQuantity(Integer existingQuantity) {
        this.existingQuantity = existingQuantity;
    }

    public String getPlace() {
        return place;
    }

    public void setPlace(String place) {
        this.place = place;
    }

    public String getQuantityUnit() {
        return quantityUnit;
    }

    public void setQuantityUnit(String quantityUnit) {
        this.quantityUnit = quantityUnit;
    }

    public Date getStorageTime() {
        return storageTime;
    }

    public void setStorageTime(Date storageTime) {
        this.storageTime = storageTime;
    }

    public Integer getStorageYear() {
        return storageYear;
    }

    public void setStorageYear(Integer storageYear) {
        this.storageYear = storageYear;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getManager() {
        return manager;
    }

    public void setManager(String manager) {
        this.manager = manager;
    }

    public String getManagerName() {
        return managerName;
    }

    public void setManagerName(String managerName) {
        this.managerName = managerName;
    }

    public String getCheckManager() {
        return checkManager;
    }

    public void setCheckManager(String checkManager) {
        this.checkManager = checkManager;
    }

    public String getCheckManagerName() {
        return checkManagerName;
    }

    public void setCheckManagerName(String checkManagerName) {
        this.checkManagerName = checkManagerName;
    }

    public String getAttachment() {
        return attachment;
    }

    public void setAttachment(String attachment) {
        this.attachment = attachment;
    }

    public String getPreviewAttachment() {
        return previewAttachment;
    }

    public void setPreviewAttachment(String previewAttachment) {
        this.previewAttachment = previewAttachment;
    }

    public Boolean getNormal() {
        return normal;
    }

    public void setNormal(Boolean normal) {
        this.normal = normal;
    }

    public String getHiddenDangerIds() {
        return hiddenDangerIds;
    }

    public void setHiddenDangerIds(String hiddenDangerIds) {
        this.hiddenDangerIds = hiddenDangerIds;
    }

    public List<HiddenDangerDiscovery> getHiddenDangers() {
        return hiddenDangers;
    }

    public void setHiddenDangers(List<HiddenDangerDiscovery> hiddenDangers) {
        this.hiddenDangers = hiddenDangers;
    }

    public Double getUnitPrice() {
        return unitPrice;
    }

    public void setUnitPrice(Double unitPrice) {
        this.unitPrice = unitPrice;
    }

    public Double getTotalPrice() {
        return totalPrice;
    }

    public void setTotalPrice(Double totalPrice) {
        this.totalPrice = totalPrice;
    }

    @Override
    public String toString() {
        return "EmergencyDevice{" +
                "corpCode='" + corpCode + '\'' +
                ", corpName='" + corpName + '\'' +
                ", code='" + code + '\'' +
                ", deviceType='" + deviceType + '\'' +
                ", deviceTypeName='" + deviceTypeName + '\'' +
                ", name='" + name + '\'' +
                ", deviceParameter='" + deviceParameter + '\'' +
                ", reserveQuota=" + reserveQuota +
                ", existingQuantity=" + existingQuantity +
                ", place='" + place + '\'' +
                ", quantityUnit='" + quantityUnit + '\'' +
                ", storageTime=" + storageTime +
                ", storageYear=" + storageYear +
                ", status=" + status +
                ", manager='" + manager + '\'' +
                ", managerName='" + managerName + '\'' +
                ", checkManager='" + checkManager + '\'' +
                ", checkManagerName='" + checkManagerName + '\'' +
                ", attachment='" + attachment + '\'' +
                ", expirationTime=" + expirationTime +
                '}';
    }
}
